home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 334_01 / checkdoc.c < prev    next >
Text File  |  1991-02-04  |  1KB  |  70 lines

  1. /*
  2.  * checkdoc -- check a doc file for correctness of first column. 
  3.  *
  4.  * Prints out lines that have an illegal first character.
  5.  * First character must be space, digit, or ?, @, #, %, 
  6.  * or line must be empty.
  7.  *
  8.  * usage: checkdoc < docfile
  9.  * Modified by Russell Lang from hlp2ms.c by Thomas Williams 
  10.  *
  11.  * Original version by David Kotz used the following one line script!
  12.  * sed -e '/^$/d' -e '/^[ 0-9?@#%]/d' gnuplot.doc
  13.  *
  14.  */
  15.  
  16. #include <stdio.h>
  17. #include <ctype.h>
  18.  
  19. #define MAX_LINE_LEN    256
  20. #define TRUE 1
  21. #define FALSE 0
  22.  
  23. main()
  24. {
  25.     convert(stdin,stdout);
  26.     exit(0);
  27. }
  28.  
  29. convert(a,b)
  30.     FILE *a,*b;
  31. {
  32.     static char line[MAX_LINE_LEN];
  33.  
  34.     while (fgets(line,MAX_LINE_LEN,a)) {
  35.        process_line(line, b);
  36.     }
  37. }
  38.  
  39. process_line(line, b)
  40.     char *line;
  41.     FILE *b;
  42. {
  43.     switch(line[0]) {        /* control character */
  44.        case '?': {            /* interactive help entry */
  45.           break;            /* ignore */
  46.        }
  47.        case '@': {            /* start/end table */
  48.           break;            /* ignore */
  49.        }
  50.        case '#': {            /* latex table entry */
  51.           break;            /* ignore */
  52.        }
  53.        case '%': {            /* troff table entry */
  54.           break;            /* ignore */
  55.        }
  56.        case '\n':            /* empty text line */
  57.        case ' ': {            /* normal text line */
  58.           break;
  59.        }
  60.        default: {
  61.           if (isdigit(line[0])) { /* start of section */
  62.                   /* ignore */
  63.           } else
  64.             fputs(line,b);    /* output bad line */
  65.           break;
  66.        }
  67.     }
  68. }
  69.  
  70.